#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int get_fd_from_key(char*);

int get_msg_id(const char*, char *, unsigned int &);

int main(int argc, char* argv[])
{
	char key[]="12_123456";
	unsigned int mmsc_node_id = 0;
	char cl_msg_id[50] = {0};
	get_msg_id(key, cl_msg_id, mmsc_node_id);
	printf("key[%s] msg_id[%s] mmsc_node_id[%d]\n",
			key, cl_msg_id, mmsc_node_id);
	return 0;
}
int get_fd_from_key(char* in_cl_key)
{
	/*
	char *start = strchr(in_cl_key,'-');
	printf("%s\n",start+1);
	printf("%d\n",start - in_cl_key);
	*/
	const char *pp = "-";
	char *cl_key_pre = strtok(in_cl_key, pp);
	char *cl_key_fd = strtok('\0', pp);
	char *cl_key_seq = strtok('\0', pp);
	printf("%s\n", cl_key_pre);
	printf("%s\n", cl_key_fd);
	printf("%s\n", cl_key_seq);
	printf("%s\n", in_cl_key+4);

	printf("[[[[[[%d]]]]]]\n",strcmp(cl_key_pre,"nam"));

	int fd = atoi(cl_key_fd);
	unsigned int seq = atoi(cl_key_seq);
	printf("fd = %d\n", fd);
	printf("seq = %d\n", seq);
}
int get_msg_id(const char* in_cl_key,
			   char * out_cl_msg_id,
			   unsigned int & out_ui_mmsc_id)
{
    if (NULL == in_cl_key)
    {   
        printf("Get a NULL key");

        return -1;
    }   
	char cl_key[50] = {0};
	strncpy(cl_key, in_cl_key, 50);
    const char *pc_tok = "_";
    char* cl_mmsc_id = strtok(cl_key, pc_tok);
    char* cl_msg_id = strtok('\0', pc_tok);

    if (NULL == cl_mmsc_id
     || NULL == cl_msg_id)
    {   
        printf("[%s] invalid key", in_cl_key);

        return -1;
    }   
    strncpy(out_cl_msg_id, cl_msg_id, 50); 
    out_ui_mmsc_id = atoi(cl_mmsc_id);

    return 0;
}

